The present invention relates to a system and a method for enabling file revision management of application software even if the application software is not originally provided with functions for file revision management.
Various studies have been carried out with regard to backup management of files in computer systems. For example, in Japanese Patent Application Laid-Open No.HEI4-369745 concerning program development application software, a candidate (provisional) backup file is automatically saved when a predetermined condition is satisfied or when a predetermined time has passed in the use of the program development application software by a user, and the candidate backup file is saved as an actual backup file if the candidate backup file could actually be compiled and executed normally. In the conventional file backup management method, candidate backup files that could not be compiled or executed normally are abandoned, and thereby necessary storage capacity in the computer system is reduced.
Meanwhile, some applications (application software) of nowadays are being provided with file revision management functions as file backup management functions. By the file revision management functions of the application software of nowadays, a historical log of file deletion and file name change by the user is maintained, and files which have been deleted or whose names have been changed by the user are also maintained (stored in a record medium such as an HDD (Hard Disk Drive)) so that each file can arbitrarily been loaded again when necessary. As is widely known, the file revision management functions have been implemented in applications such as xe2x80x9cMicrosoft Wordxe2x80x9d (Microsoft Corporation) as built-in functions of the application.
However, these days, computers have become capable of starting two or more application programs concurrently and the users of the computers have a tendency to use two or more applications in parallel or simultaneously. Therefore, the aforementioned file revision management functions which are provided to only limited applications are not enough nor efficient in the computer usage environment of these days. Further, if the file revision management is executed by a plurality of application programs independently, wasteful repetition of file revision management operations occurs between the application programs, and thereby waste of operations, cost, etc. occurs between the application programs.
It is therefore the primary object of the present invention to provide a file revision management system and a file revision management method, by which file revision management can be implemented even if the applications are not provided with file revision management functions, and thereby file backup reliability of the applications can be improved.
Another object of the present invention is to provide a file revision management system and a file revision management method, by which file revision management of a plurality of applications can be executed by a common file revision manager, and thereby the efficiency of the file revision management for applications can be improved and manufacturing cost of the applications can be reduced.
In accordance with a first aspect of the present invention, there is provided a file revision management system for executing file revision management when an application which is operating on an operating system of a computer system saves a file by means of file overwrite. The file revision management system comprises a file manipulation monitoring means and a processing means. The file manipulation monitoring means monitors and hooks API (Application Program Interface) commands which are outputted by the application to the operating system and thereby detects file manipulation which is going to be executed by the application. The processing means executes file manipulation necessary for the file revision management such as file deletion and file name change for generating a backup file and processes necessary for the file revision management, depending on the file manipulation which is going to be executed by the application which has been detected by the file manipulation monitoring means.
In accordance with a second aspect of the present invention, in the first aspect, when the file manipulation detected by the file manipulation monitoring means is xe2x80x9cfile deletionxe2x80x9d of a file having a name An which has been stored in a storage unit of the computer system, the processing means changes the name of the file An stored in the storage unit into a corresponding backup file name Bn instead of actually deleting the contents of the deleted file An from the storage unit, and stores the deleted file name An in a deleted file name memory means. When the file manipulation detected by the file manipulation monitoring means is xe2x80x9cfile name changexe2x80x9d from a file name C into a file name D, the processing means judges whether or not each of the deleted file names An stored in the deleted file name memory means matches the file name D after the file name change, and regards a file in the storage unit corresponding to a deleted file name An that matched the file name D after the file name change as the object of reserve, and regards files in the storage unit corresponding to deleted file names An that did not match the file name D after the file name change as unnecessary temporary files.
In accordance with a third aspect of the present invention, in the second aspect, in the case where the file manipulation detected by the file manipulation monitoring means is xe2x80x9cfile name changexe2x80x9d, with regard to the unnecessary temporary files, the processing means deletes the unnecessary temporary files from the storage unit and deletes deleted file names An corresponding to the unnecessary temporary files from the deleted file name memory means. With regard to the object of reserve, the processing means does not delete the object of reserve from the. storage unit and deletes a deleted file name An corresponding to the object of reserve from the deleted file name memory means. The processing means changes the file name of the newest temporary file which has been generated by the application for the file overwrite into the file name D after the file name change.
In accordance with a fourth aspect of the present invention, in the third aspect, when a deleted file name An is stored in the deleted file name memory means by the processing means, the processing means also stores the corresponding backup file name Bn in the deleted file name memory means, and when a deleted file name An is deleted from the deleted file name memory means by the processing means, the processing means also deletes the corresponding backup file name Bn from the deleted file name memory means.
In accordance with a fifth aspect of the present invention, in the third aspect, the processing means executes the file deletion and the file name change with respect to the storage unit by sending API commands for the file deletion and the file name change to the operating system.
In accordance with a sixth aspect of the present invention, in the second aspect, the backup file name Bn includes the date and time concerning the xe2x80x9cfile deletionxe2x80x9d.
In accordance with a seventh aspect of the present invention, in the sixth aspect, the backup file name Bn further includes part of the name An of the deleted file An.
In accordance with an eighth aspect of the present invention, in the second aspect, the deleted file name memory means is implemented by memory of the computer system.
In accordance with a ninth aspect of the present invention, in the second aspect, the deleted file name memory means is implemented by an HDD (Hard Disk Drive) of the computer system.
In accordance with a tenth aspect of the present invention, in the first aspect, when the file manipulation detected by the file manipulation monitoring means is xe2x80x9cfile deletionxe2x80x9d of a file which has been stored in a storage unit of the computer system, the processing means changes the name of the file stored in the storage unit into a corresponding backup file name instead of actually deleting the contents of the deleted file from the storage unit.
In accordance with an eleventh aspect of the present invention, in the first aspect, the file manipulation monitoring means judges which of two or more applications operating on the computer system outputted the API command based on an ID (IDentifier) included in the API command. The processing means executes the file manipulation and the processes necessary for the file revision management for the two or more applications respectively and independently based on the ID.
In accordance with a twelfth aspect of the present invention, in the first aspect, the file revision management system is started up on the computer system for each application operating on the operating system, independently.
In accordance with a thirteenth aspect of the present invention, there is provided a file revision management method for executing file revision management when an application which is operating on an operating system of a computer system saves a file by means of file overwrite. The file revision management method comprises a file manipulation monitoring step and a processing step. In the file manipulation monitoring step, API (Application Program Interface) commands which are outputted by the application to the operating system are monitored and hooked and thereby file manipulation which is going to be executed by the application is detected. In the processing step, file manipulation necessary for the file revision management such as file deletion and file name change for generating a backup file and processes necessary for the file revision management are executed depending on the file manipulation which is going to be executed by the application which has been detected in the file manipulation monitoring step.
In accordance with a fourteenth aspect of the present invention, in the processing step of the thirteenth aspect, when the file manipulation detected in the file manipulation monitoring step is xe2x80x9cfile deletionxe2x80x9d of a file having a name An which has been stored in a storage unit of the computer system, the name of the file An stored in the storage unit is changed into a corresponding backup file name Bn instead of actually deleting the contents of the deleted file An from the storage unit, and the deleted file name An is stored in a deleted file name memory means. When the file manipulation detected in the file manipulation monitoring step is xe2x80x9cfile name changexe2x80x9d from a file name C into a file name D, it is judged whether or not each of the deleted file names An stored in the deleted file name memory means matches the file name D after the file name change, and a file in the storage unit corresponding to a deleted file name An that matched the file name D after the file name change is regarded as the object of reserve, and files in the storage unit corresponding to deleted file names An that did not match the file name D after the file name change are regarded as unnecessary temporary files.
In accordance with a fifteenth aspect of the present invention, in the processing step in the fourteenth aspect, in the case where the file manipulation detected in the file manipulation monitoring step is xe2x80x9cfile name changexe2x80x9d, the unnecessary temporary files are deleted from the storage unit and deleted file names An corresponding to the unnecessary temporary files are deleted from the deleted file name memory means, and the object of reserve is not deleted from the storage unit and a deleted file name An corresponding to the object of reserve is deleted from the deleted file name memory means, and the file name of the newest temporary file which has been generated by the application for the file overwrite is changed into the file name D after the file name change.
In accordance with a sixteenth aspect of the present invention, in the processing step in the fifteenth aspect, when a deleted file name An is stored in the deleted file name memory means, the corresponding backup file name Bn is also stored in the deleted file name memory means, and when a deleted file name An is deleted from the deleted file name memory means, the corresponding backup file name Bn is also deleted from the deleted file name memory means.
In accordance with a seventeenth aspect of the present invention, in the fifteenth aspect, the file deletion and the file name change which are executed in the processing step with respect to the storage unit are implemented by sending API commands for the file deletion and the file name change to the operating system.
In accordance with an eighteenth aspect of the present invention, in the fourteenth aspect, the backup file name Bn includes the date and time concerning the xe2x80x9cfile deletionxe2x80x9d.
In accordance with a nineteenth aspect of the present invention, in the eighteenth aspect, the backup file name Bn further includes part of the name An of the deleted file An.
In accordance with a twentieth aspect of the present invention, in the fourteenth aspect, the deleted file name memory means is implemented by memory of the computer system.
In accordance with a twenty-first aspect of the present invention, in the fourteenth aspect, the deleted file name memory means is implemented by an HDD (Hard Disk Drive) of the computer system.
In accordance with a twenty-second aspect of the present invention, in the thirteenth aspect, when the file manipulation detected in the file manipulation monitoring step is xe2x80x9cfile deletionxe2x80x9d of a file which has been stored in a storage unit of the computer system, the name of the file stored in the storage unit is changed into a corresponding backup file name instead of actually deleting the contents of the deleted file from the storage unit.
In accordance with a twenty-third aspect of the present invention, in the file manipulation monitoring step of the thirteenth aspect, it is judged which of two or more applications operating on the computer system outputted the API command, based on an ID (IDentifier) included in the API command. In the processing step, the file manipulation and the processes necessary for the file revision management are executed for the two or more applications respectively and independently based on the ID.
In accordance with a twenty-fourth aspect of the present invention, in the thirteenth aspect, the file revision management method is executed for each application operating on the operating system, independently.
In accordance with twenty-fifth through thirty-sixth aspects of the present invention, there are provided computer-readable record mediums storing programs for instructing a computer system to execute the file revision management methods of the thirteenth through twenty-fourth aspects of the present invention.